<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    var a = 1;
    function printA(){
        console.log(this.a);
    }
    var obj={
        a:2,
        foo:printA,
        bar:function(){
            console.log(this) //? 这个this是指向对象的
            printA();
        }
    }
/*
    ? obj.foo()，foo 的this指向obj对象，所以a会输出2；
    ? obj.bar()，printA在bar方法中执行，所以此时printA的this指向的是window，所以会输出1；
    ? foo()，foo是在全局对象中执行的，所以其this指向的是window，所以会输出1；
*/
    obj.foo(); //? 2
    obj.bar(); //? 1
    var foo = obj.foo;
    foo(); //? 1
</script>
</body>
</html>
